import axios from 'axios'
import toast from 'react-hot-toast'

// 创建axios实例
const api = axios.create({
  baseURL: '/api',
  timeout: 30000, // 增加到30秒，适应消息加载需求
  headers: {
    'Content-Type': 'application/json',
  },
})

// 创建专门用于消息加载的axios实例（更长超时时间）
export const messageApi = axios.create({
  baseURL: '/api',
  timeout: 60000, // 消息加载使用60秒超时
  headers: {
    'Content-Type': 'application/json',
  },
})

// 请求拦截器
api.interceptors.request.use(
  (config) => {
    // 可以在这里添加认证token等
    return config
  },
  (error) => {
    return Promise.reject(error)
  }
)

// 响应拦截器
api.interceptors.response.use(
  (response) => {
    return response.data
  },
  (error) => {
    const message = error.response?.data?.detail || error.message || '请求失败'
    
    // 显示错误提示
    toast.error(message)
    
    return Promise.reject(error)
  }
)

// 为messageApi添加拦截器
messageApi.interceptors.response.use(
  (response) => {
    return response.data
  },
  (error) => {
    const message = error.response?.data?.detail || error.message || '消息加载失败'
    console.error('消息加载错误:', error)
    return Promise.reject(error)
  }
)

export default api
